package com.cbh.feign.controller.institution;


import java.util.List;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.cbh.api.model.ApiResult;
import com.cbh.api.model.institution.PaymentInformation;

public interface PaymentInformationControllerBase {

	/**
	 * 保存报价接口支付信息
	 * 
	 * @param product
	 * @return
	 */
	@RequestMapping(value = "/auth/v3/payment/information", method = RequestMethod.POST, produces = "application/json")
	public ApiResult<String> save(@RequestParam(value = "accountToken", required = true) String accountToken,
			@RequestBody PaymentInformation ob);

	/**
	 * 获取全部报价接口支付信息
	 * 
	 * @return
	 */
	@RequestMapping(value = "/auth/v3/payment/information", method = RequestMethod.GET, produces = "application/json")
	public ApiResult<List<PaymentInformation>> getAll(
			@RequestParam(value = "accountToken", required = true) String accountToken);

	/**
	 * 获取报价接口支付信息
	 * 
	 * @param proId
	 * @return
	 */
	@RequestMapping(value = "/auth/v3/payment/information/id", method = RequestMethod.GET, produces = "application/json")
	public ApiResult<PaymentInformation> getOne(
			@RequestParam(value = "accountToken", required = true) String accountToken,
			@RequestParam(value = "id", required = true) String id);

	/**
	 * 获取报价接口的支付信息列表
	 * 
	 * @param accountToken
	 * @param oiid
	 * @return
	 */
	@RequestMapping(value = "/auth/v3/payment/information/oiid", method = RequestMethod.GET, produces = "application/json")
	public ApiResult<List<PaymentInformation>> getByOiId(
			@RequestParam(value = "accountToken", required = true) String accountToken,
			@RequestParam(value = "oiId", required = true) String oiid);

	/**
	 * 删除
	 * 
	 * @param id
	 * @return
	 */
	@RequestMapping(value = "/auth/v3/payment/information/id", method = RequestMethod.DELETE, produces = "application/json")
	public ApiResult<Boolean> delete(@RequestParam(value = "accountToken", required = true) String accountToken,
			@RequestParam(value = "id", required = true) String id);

	/**
	 * 禁用
	 * 
	 * @param id
	 * @return
	 */
	@RequestMapping(value = "/auth/v3/payment/information/disable", method = RequestMethod.GET, produces = "application/json")
	public ApiResult<Boolean> disable(@RequestParam(value = "accountToken", required = true) String accountToken,
			@RequestParam(value = "id", required = true) String id);

	/**
	 * 启用
	 * 
	 * @param id
	 * @return
	 */
	@RequestMapping(value = "/auth/v3/payment/information/enable", method = RequestMethod.GET, produces = "application/json")
	public ApiResult<Boolean> enable(@RequestParam(value = "accountToken", required = true) String accountToken,
			@RequestParam(value = "id", required = true) String id);
}
